package study.kit.el.zh.table;

import lombok.Data;
import study.kit.el.zh.parse.CellVO;
import study.kit.el.zh.parse.RangeVO;
import study.kit.el.zh.parse.RowVO;

import java.util.List;
import java.util.stream.Collectors;

@Data
public class TableCtx {
    // 头部
    private RowVO header;
    // 合并
    private List<RangeVO> rangeLt;
    // 数据
    private List<RowVO> dataLt;

    // 数据行大小
    private Integer rowSize;
    // 数据列大小
    private Integer colSize;

    public TableCtx(RowVO header, List<RangeVO> rangeLt, List<RowVO> dataLt) {
        this.header = header;
        this.rangeLt = rangeLt;
        this.dataLt = dataLt;
        //
        List<CellVO> cellLt = dataLt.stream().map(RowVO::getCellVOLt)
                .flatMap(List::stream)
                .collect(Collectors.toList());
        this.rowSize = cellLt.stream().mapToInt(CellVO::getRowNum).max().getAsInt();
        this.colSize = cellLt.stream().mapToInt(CellVO::getColNum).max().getAsInt();
    }
}
